<?php
/**
 * 功能：MController_Abstract 实现了一个其它控制器的基础类
 * 说明：
 * 创建日期：
 * 更新日期：
 * 作者：Mirze
 * 补充说明： 
 * 
 */
abstract class MController_Abstract
{
   /** 封装请求的对象: MContext **/
    protected $_context;


    /** 构造函数 **/
    function __construct()
    {
        $this->_context = MContext::instance();
    }
	/**
	 * (功能描述)  检查指定的动作方法是否存在
     *
     * @param string $action_name
     * @return boolean
     */
    function existsAction($action_name)
    {
        $action_method = "action{$action_name}";
        return method_exists($this, $action_method);
    }

    /**
	 * (功能描述)  转发请求到控制器的指定动作
     *
     * @param string $udi
     * @return mixed
     */
    protected function _forward($udi)
    {
        $args = func_get_args();
        array_shift($args);
        return new MController_Forward($udi, $args);
    }

    /**
     * 返回一个 MView_Redirect 对象
     *
     * @param string $url
     * @param int $delay
     *
     * @return MView_Redirect
     */
    protected function _redirect($url, $delay = 0)
    {
        return new MView_Redirect($url, $delay);
    }
}

